package com.bot.nft.module.op.domain.bo;

import lombok.Getter;
import lombok.Setter;

import javax.validation.constraints.Future;
import javax.validation.constraints.NotBlank;
import javax.validation.constraints.NotNull;
import java.io.Serializable;
import java.util.Date;
import java.util.List;

/**
 * <p>
 * 空投活动信息Bo
 * </p>
 *
 * @author zhangkaige
 * @since 2024-01-24
 */
@Getter
@Setter
public class OpAirInfoBo {


    /**
     * 空投活动标识
     */
    private String id;

    /**
     * 空投活动名称
     */
    @NotBlank(message = "活动名称不能为空")
    private String name;

    /**
     * 快照时间
     */
    @NotNull(message = "快照时间不能为空")
    @Future(message = "快照时间不能比当前时间早")
    private Date snaTime;

    /**
     * 空投活动执行时间
     */
    @NotNull(message = "执行时间不能为空")
    @Future(message = "执行时间不能比当前时间早")
    private Date exeTime;

    /**
     * 状态（0 禁用，1 启用，2 已快照，3 已执行 ）
     */
    private Integer status;

    /**
     * 限制类型
     */
    @NotNull(message = "条件类型不能为空")
    private Integer conType;

    /**
     * 投递类型（特殊空投专属 0 合成，1 空投，2 有限购）
     */
    private Integer deliveryType;

    /**
     * 创建人
     */
    private String createUser;

    /**
     * 创建时间
     */
    private Date createTime;

    /**
     * 更新人
     */
    private String updateUser;

    /**
     * 更新时间
     */
    private Date updateTime;

    /**
     * 删除标识(0未删除，1已删除)
     */
    private Integer deleteFlag;

    /**
     * 持有限制集合
     */
    private List<OpAirHoldLimitBo> opAirHoldLimitBos;

    /**
     * 白名单集合
     */
    private List<OpAirListBo> opAirListBos;

    /**
     * 空投藏品集合
     */
    private List<OpAirNftBo> opAirNftBos;
}
